﻿Public Interface IDB

    Function ReadNumberOfCategories() As Integer

    '* Anzahl der Datenrecords einer Kategorie. 

    Function ReadNumberOfRecords(ByVal cat As Integer) As Integer

    '* Namen der Datenbankeinträge einer Katgeorie. 

    Function ReadNames(ByVal cat As Integer) As [String]()

    '* Lesen eines Datenrecords aus der Datei (Kategorie und Eintrag). 

    Function ReadRecord(ByVal cat As Integer, ByVal num As Integer) As [String]()

    '* Ändern eines Feldes in einem Datenrecord. Wirft SecurityException wenn
    '            das Datenrecord für einem anderen Auftraggeber gesperrt ist. 

    Sub UpdateRecord(ByVal cat As Integer, ByVal num As Integer, ByVal data As [String](), ByVal Lock As Long)

    '* Löschen eines Datenrecords und Freigabe des Datenrecord-Eintrags für
    '            die Wiederverwendung. Wirft SecurityException wenn das Datenrecord
    '            für einem anderen Auftraggeber gesperrt ist. 

    Sub DeleteRecord(ByVal cat As Integer, ByVal num As Integer, ByVal Lock As Long)

    '* Liefert ein Array von Datenrecord-Nummern, die in der gegebenen Kategorie
    '            die erforderlichen Kriterien erfüllen. Feld n in der DB-Datei wird durch
    '            criteria[n] beschrieben. Der Wert null passt auf jeden DB-Wert. Für Nichtnull-
    '            Werte trifft jeder DB-Eintrag zu, der mit criteria[n] beginnt. "Mai"
    '            passt z.B. auf "Mai" und "Maier". 

    Function FindByCriteria(ByVal cat As Integer, ByVal criteria As [String]()) As Integer()

    '* Erzeugen eines neuen Datenrecords mit möglicher Wiederbenutzung freigebener
    '            (gelöschter) Einträge. Trägt die übergebenen Daten ein und
    '            liefert die Nummer des neuen Datenrecords in der Kategorie zurück. 

    Function CreateRecord(ByVal cat As Integer, ByVal data As [String]()) As Integer

    '* Sperren eines Datenrecords, für einen Auftraggeber. Mit dem zurückgegebenen
    '            cookie kann auf das Datenrecord zugegriffen werde. 

    Function Lock(ByVal cat As Integer, ByVal num As Integer) As Long

    '* Freigabe einer Sperre. Wirft SecurityException wenn das Datenrecord für
    '            einem anderen Auftraggeber gesperrt ist. 

    Sub Unlock(ByVal cat As Integer, ByVal num As Integer, ByVal Lock As Long)
End Interface
